// pages/changePassword/changePassword.js
const util = require('../../utils/util');
const app = getApp();
import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';
import Base64 from '../../utils/Base64.js';
import CommonService from '../../utils/service/commonService.js';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    detail: {},
    oldPassWord:"",
    newPassWord:"",
    checkPassWord:""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  //获取输入的旧密码
  oldPassWordInput: function (e) {
    this.setData({
      oldPassWord: e.detail.value
    })
  },

  //获取输入的新密码
  newPassWordInput: function (e) {
    this.setData({
      newPassWord: e.detail.value
    })
  },

  //获取输入的新密码
  checkPassWordInput: function (e) {
    this.setData({
      checkPassWord: e.detail.value
    })
  },

  //验证旧密码是否正确
  checkOldPass() {
    let _this=this;
    let auth = Base64.encode(app.globalData.appAccount);
    let authHeader = {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Basic ' + auth
    };
    const loginInfo = "grant_type=password" +
      "&username=" + app.globalData.userInfo.userName +
      "&password=" + _this.data.oldPassWord;

    wx.request({
      url: app.globalData.tokenUrl,
      method:'post',
      header: authHeader,
      data: loginInfo,
      success:function(res){
        if(res.statusCode==200){
          //验证密码输入
          _this.checkPassFormat();
        }else{
          Toast.fail('原始密码错误');
        }
      }
    })
  },

  //验证密码输入
  checkPassFormat(){
    let newP1=this.data.newPassWord;
    let newP2=this.data.checkPassWord;

    //验证新密码是否符合格式要求
    if (newP1.length < 6 || newP1.length > 18){
      Toast.fail('密码长度为6-18位');

    //验证两次输入是否一致
    }else if(newP1 != newP2){
      Toast.fail('新密码与确认密码不一致');
    }else{
      //修改密码
      this.updatePassword();
    }
  },

  //修改密码
  updatePassword(){
    let param = {
      className: 'user',
      data: {
        filter: {
          id: app.globalData.userInfo.id
        },
        update: {
          set: {
            password: this.data.newPassWord
          }
        }
      }
    }
    CommonService.goUpdate(param).then(res => {
      if (res.statusCode == 200 && res.data.code == 200){
        Toast('修改成功，请重新登录');

        let parameter = {
          userName:app.globalData.userInfo.userName,
          password:''
        };

        //将用户名密码存入本地
        try {
          wx.setStorageSync("loginInputLast", parameter);
        } catch (e) {}
        setTimeout(() => {
          //跳转登录
          wx.redirectTo({
            url: "/pages/login/login?from=quit"
          })
        }, 1000);

      }else{
        Toast.fail('操作失败');
      }
    }).catch((error) => {
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  }
})
